---
title: "Estado del COVID-19 en Costa Rica. Elaborado por Yuliany Cordero, Nicole Parra y Fernanda Zúñiga"
output:
flexdashboard::flex_dashboard:
orientation: rows
social: menu
source_code: embed
vertical_layout: fill
theme: cosmo
resize_reload: TRUE
fig_mobile: FALSE
---
```{r setup, include=FALSE}
#-------------------- Paquetes --------------------
library(flexdashboard)
library(plotly)
library(dygraphs)
library(dplyr)
library(tidyr)
library(sf)
library(leaflet)
#-------------------- Colores ---------------------
color_positivos <- '#006699' #Azul
color_activos <- '#993333' #Rojo
color_recuperados <- '#336633' #Verde
color_fallecidos <- '#660066' #Morado
color_nuevos_positivos <- 'pink'
color_hospitalizados <- '#ffcc00'
color_salon <- '#ff6666'
color_uci <- '#ff6600'
color_positivos2 <- '#7fb2e5'
color_activos2 <- '#cc6666'
color_recuperados2 <- '#66cc99'
color_fallecidos2 <- '#993399'
#--------------------- Íconos ---------------------
icono_positivos <- 'fa fa-line-chart'
icono_activos <- 'fas fa-exclamation-triangle'
icono_recuperados <- 'fa fa-check-square-o'
icono_fallecidos <- 'fa fa-close'
icono_nuevos_positivos <- 'fas fa-user-md'
icono_hospitalizados <- 'fas fa-hospital'
icono_salon <- 'fas fa-user-md'
icono_uci <- 'fas fa-procedures'
icono_mujeres <- 'fa fa-venus'
icono_hombres <- 'fa fa-mars'
icono_adultostot <- 'fa fa-user'
icono_adultosmayores <- 'fa fa-users'
icono_menores <- 'fa fa-child'
#--------------- Otros parámetros -----------------
# Separador para lectura de datos CSV
caracter_separador <- ','
#--------------- Archivos de datos ----------------
archivo_general_pais <- 'https://raw.githubusercontent.com/geoprocesamiento-2020i/datos/master/covid19/ms/07_02_CSV_GENERAL.csv'
archivo_positivos_cantones <- 'https://raw.githubusercontent.com/geoprocesamiento-2020i/datos/master/covid19/ms/07_02_CSV_POSITIVOS.csv'
archivo_activos_cantones <- 'https://raw.githubusercontent.com/geoprocesamiento-2020i/datos/master/covid19/ms/07_02_CSV_ACTIVOS.csv'
archivo_recuperados_cantones <- 'https://raw.githubusercontent.com/geoprocesamiento-2020i/datos/master/covid19/ms/07_02_CSV_RECUP.csv'
archivo_fallecidos_cantones <- 'https://raw.githubusercontent.com/geoprocesamiento-2020i/datos/master/covid19/ms/07_02_CSV_FALLECIDOS.csv'
#---------------------- Datos ---------------------
# Data frame de datos generales por país
df_general_pais <- read.csv(archivo_general_pais, sep = caracter_separador)
df_general_pais$FECHA <- as.Date(df_general_pais$FECHA, "%d/%m/%Y")
# Data frame de datos generales por país en la última fecha
df_general_pais_ultima_fecha <-
df_general_pais %>%
filter(FECHA == max(FECHA, na.rm = TRUE))
# Data frame de datos generales por país en la última fecha
df_general_pais_viejos <-
df_general_pais[116,]
# Data frame de casos positivos por cantón
df_positivos_cantones_ancho <- read.csv(archivo_positivos_cantones, sep = caracter_separador)
df_positivos_cantones <-
df_positivos_cantones_ancho %>%
pivot_longer(cols = c(-cod_provin, -provincia, -cod_canton, -canton), names_to = "fecha", values_to = "positivos")
df_positivos_cantones$fecha <- as.Date(df_positivos_cantones$fecha, "X%d.%m.%Y")
# Data frame de casos positivos por cantón en la última fecha
df_positivos_cantones_ultima_fecha <-
df_positivos_cantones %>%
filter(fecha == max(fecha, na.rm = TRUE)) %>%
select(cod_canton, positivos)
# Data frame de casos fallecidos por cantón
df_fallecidos_cantones_ancho <- read.csv(archivo_fallecidos_cantones, sep = caracter_separador)
df_fallecidos_cantones <-
df_fallecidos_cantones_ancho %>%
pivot_longer(cols = c(-cod_provin, -provincia, -cod_canton, -canton), names_to = "fecha", values_to = "fallecidos")
df_fallecidos_cantones$fecha <- as.Date(df_fallecidos_cantones$fecha, "X%d.%m.%Y")
# Data frame de casos fallecidos por cantón en la última fecha
df_fallecidos_cantones_ultima_fecha <-
df_fallecidos_cantones %>%
filter(fecha == max(fecha, na.rm = TRUE)) %>%
select(cod_canton, fallecidos)
# Data frame de casos recuperados por cantón
df_recuperados_cantones_ancho <- read.csv(archivo_recuperados_cantones, sep = caracter_separador)
df_recuperados_cantones <-
df_recuperados_cantones_ancho %>%
pivot_longer(cols = c(-cod_provin, -provincia, -cod_canton, -canton), names_to = "fecha", values_to = "recuperados")
df_recuperados_cantones$fecha <- as.Date(df_recuperados_cantones$fecha, "X%d.%m.%Y")
# Data frame de casos recuperados por cantón en la última fecha
df_recuperados_cantones_ultima_fecha <-
df_recuperados_cantones %>%
filter(fecha == max(fecha, na.rm = TRUE)) %>%
select(cod_canton, recuperados)
# Data frame de casos activos por cantón
df_activos_cantones_ancho <- read.csv(archivo_activos_cantones, sep = caracter_separador)
df_activos_cantones <-
df_activos_cantones_ancho %>%
pivot_longer(cols = c(-cod_provin, -provincia, -cod_canton, -canton), names_to = "fecha", values_to = "activos")
df_activos_cantones$fecha <- as.Date(df_activos_cantones$fecha, "X%d.%m.%Y")
# Data frame de casos fallecidos por cantón en la última fecha
df_activos_cantones_ultima_fecha <-
df_activos_cantones %>%
filter(fecha == max(fecha, na.rm = TRUE)) %>%
select(cod_canton, activos)
# Objeto sf de cantones
#url_base_wfs_ign_5mil <- "http://geos.snitcr.go.cr/be/IGN_5/wfs?"
#solicitud_wfs_ign_5mil_cantones <- "request=GetFeature&service=WFS&version=2.0.0&typeName=IGN_5:limitecantonal_5k&outputFormat=application/json"
#sf_cantones <-
# st_read(paste0(url_base_wfs_ign_5mil, solicitud_wfs_ign_5mil_cantones)) %>%
# st_simplify(dTolerance = 1000) %>%
#st_transform(4326)
sf_cantones <- st_read('https://raw.githubusercontent.com/geoprocesamiento-2020i/datos/master/delimitacion-territorial-administrativa/cr/ign/cr_limite_cantonal_ign_wgs84.geojson')
# Objeto sf de casos positivos en cantones en la última fecha
sf_positivos_cantones_ultima_fecha <-
left_join(sf_cantones, df_positivos_cantones_ultima_fecha, by = c('cod_canton')) %>%
arrange(desc(positivos))
# Objeto sf de casos fallecidos en cantones en la última fecha
sf_fallecidos_cantones_ultima_fecha <-
left_join(sf_cantones, df_fallecidos_cantones_ultima_fecha, by = c('cod_canton')) %>%
arrange(desc(fallecidos))
# Objeto sf de casos recuperados en cantones en la última fecha
sf_recuperados_cantones_ultima_fecha <-
left_join(sf_cantones, df_recuperados_cantones_ultima_fecha, by = c('cod_canton')) %>%
arrange(desc(recuperados))
# Objeto sf de casos activos en cantones en la última fecha
sf_activos_cantones_ultima_fecha <-
left_join(sf_cantones, df_activos_cantones_ultima_fecha, by = c('cod_canton')) %>%
arrange(desc(activos))
```
Resumen
=======================================================================
Row {data-height=10}
-----------------------------------------------------------------------
### **Última actualización: `r df_general_pais_ultima_fecha$FECHA`**
Row
-----------------------------------------------------------------------
### Casos positivos {.value-box}
```{r}
valueBox(value = paste(format(df_general_pais_ultima_fecha$positivos, big.mark = ","), "(",
df_general_pais_ultima_fecha$nue_posi,
")",
"", sep = " "),
caption = "Total de casos positivos",
icon = icono_positivos,
color = color_positivos
)
```
### Casos activos {.value-box}
```{r}
valueBox(value = paste(format(df_general_pais_ultima_fecha$activos, big.mark = ","), "(+",
df_general_pais_ultima_fecha$nue_acti,
")", " (",
round(100 * df_general_pais_ultima_fecha$activos / df_general_pais_ultima_fecha$positivos, 1),
"%)", sep = ""),
caption = "Total de casos activos",
icon = icono_activos,
color = color_activos
)
```
### Casos recuperados {.value-box}
```{r}
valueBox(value = paste(format(df_general_pais_ultima_fecha$RECUPERADOS, big.mark = ","), "(+",
df_general_pais_ultima_fecha$NUE_RECUP,
")", " (",
round(100 * df_general_pais_ultima_fecha$RECUPERADOS / df_general_pais_ultima_fecha$positivos, 1),
"%)", sep = ""),
caption = "Total de casos recuperados",
icon = icono_recuperados,
color = color_recuperados
)
```
### Casos fallecidos {.value-box}
```{r}
valueBox(value = paste(format(df_general_pais_ultima_fecha$fallecidos, big.mark = ","), "(+",
df_general_pais_ultima_fecha$nue_falleci,
")", "(",
round(100 * df_general_pais_ultima_fecha$fallecidos / df_general_pais_ultima_fecha$positivos, 1),
"%)", sep = ""),
caption = "Total de casos fallecidos",
icon = icono_fallecidos,
color = color_fallecidos
)
```
Row
-----------------------------------------------------------------------
### Hospitalizados {.value-box}
```{r}
valueBox(value = paste(format(df_general_pais_ultima_fecha$hospital, big.mark = ","), "(+",
df_general_pais_ultima_fecha$nue_hospi,
")", "", sep = " "),
caption = "Total de hospitalizados",
icon = icono_hospitalizados,
color = color_hospitalizados
)
```
### En salón {.value-box}
```{r}
valueBox(value = paste(format(df_general_pais_ultima_fecha$salon, big.mark = ","), "(+",
df_general_pais_ultima_fecha$nue_salon,
")", " (",
round(100 * df_general_pais_ultima_fecha$salon / df_general_pais_ultima_fecha$hospital, 1),
"%)", sep = ""),
caption = "Hospitalizados en salón",
icon = icono_salon,
color = color_salon
)
```
### En UCI {.value-box}
```{r}
valueBox(value = paste(format(df_general_pais_ultima_fecha$UCI, big.mark = ","), "(+",
df_general_pais_ultima_fecha$nue_UCI,
")", " (",
round(100 * df_general_pais_ultima_fecha$UCI / df_general_pais_ultima_fecha$hospital, 1),
"%)", sep = ""),
caption = "Hospitalizados en UCI",
icon = icono_uci,
color = color_uci
)
```
Row {data-width=500}
-----------------------------------------------------------------------
### Gráfico de variación de las cantidades de casos en el tiempo
```{r}
plot_ly(data = df_general_pais,
x = ~ FECHA,
y = ~ positivos,
name = 'Positivos',
type = 'scatter',
mode = 'lines',
line = list(color = color_positivos)) %>%
config(locale = "es") %>%
add_trace(y = ~ activos,
name = 'Activos',
mode = 'lines',
line = list(color = color_activos)) %>%
add_trace(y = ~ RECUPERADOS,
name = 'Recuperados',
mode = 'lines',
line = list(color = color_recuperados)) %>%
add_trace(y = ~ fallecidos,
name = 'Fallecidos',
mode = 'lines',
line = list(color = color_fallecidos)) %>%
layout(title = "",
yaxis = list(title = "Cantidad de casos"),
xaxis = list(title = "Fecha"),
legend = list(x = 0.1, y = 0.9),
hovermode = "compare")
```
### Tabla de cantidades de casos en cantones
```{r}
st_drop_geometry(sf_positivos_cantones_ultima_fecha) %>%
select(Provincia = provincia, Canton = canton, Positivos = positivos) %>%
DT::datatable(rownames = FALSE,
options = list(searchHighlight = TRUE,
language = list(url = '//cdn.datatables.net/plug-ins/1.10.11/i18n/Spanish.json')
)
)
```
Casos positivos
=======================================================================
Row {data-height=10}
-----------------------------------------------------------------------
### **Última actualización: `r df_general_pais_ultima_fecha$FECHA`**
Row
-----------------------------------------------------------------------
### Casos positivos {.value-box}
```{r}
valueBox(value = paste(format(df_general_pais_ultima_fecha$positivos, big.mark = ","), "(+",
df_general_pais_ultima_fecha$nue_posi,
")", sep = " "),
caption = "Total de casos positivos",
icon = icono_positivos,
color = color_positivos
)
```
### Casos Positivos Mujeres {.value-box}
```{r}
valueBox(value = paste(format(df_general_pais_ultima_fecha$muj_posi, big.mark = ","), "(",
round(100 * df_general_pais_ultima_fecha$muj_posi / df_general_pais_ultima_fecha$positivos, 1),
"%)", sep = ""),
caption = "Total de Casos Positivos Mujeres",
icon = icono_mujeres,
color = color_positivos2
)
```
### Casos Positivos Hombres {.value-box}
```{r}
valueBox(value = paste(format(df_general_pais_ultima_fecha$hom_posi, big.mark = ","), "(",
round(100 * df_general_pais_ultima_fecha$hom_posi / df_general_pais_ultima_fecha$positivos, 1),
"%)", sep = ""),
caption = "Total de Casos Positivos Hombres",
icon = icono_hombres,
color = color_positivos2
)
```
### Casos Positivos Adultos {.value-box}
```{r}
valueBox(value = paste(format(df_general_pais_ultima_fecha$adul_posi, big.mark = ","), "(",
round(100 * df_general_pais_ultima_fecha$adul_posi / df_general_pais_ultima_fecha$positivos, 1),
"%)", sep = ""),
caption = "Total de Casos Positivos Adultos",
icon = icono_adultostot,
color = color_positivos2
)
```
### Casos Positivos Adultos Mayores {.value-box}
```{r}
valueBox(value = paste(format(df_general_pais_ultima_fecha$am_posi, big.mark = ","), "(",
round(100 * df_general_pais_ultima_fecha$am_posi / df_general_pais_ultima_fecha$positivos, 1),
"%)", sep = ""),
caption = "Total de Casos Positivos Adultos Mayores",
icon = icono_adultosmayores,
color = color_positivos2
)
```
### Casos Positivos Niños {.value-box}
```{r}
valueBox(value = paste(format(df_general_pais_ultima_fecha$menor_posi, big.mark = ","), "(",
round(100 * df_general_pais_ultima_fecha$menor_posi / df_general_pais_ultima_fecha$positivos, 1),
"%)", sep = ""),
caption = "Total de Casos Positivos Niños",
icon = icono_menores,
color = color_positivos2
)
```
Row {data-width=400}
-----------------------------------------------------------------------
### Mapa de casos positivos en cantones
```{r}
paleta_azul <- colorBin(palette = "Blues",
domain = sf_positivos_cantones_ultima_fecha$positivos,
bins = 10
)
leaflet_cantones <- leaflet(sf_positivos_cantones_ultima_fecha) %>%
fitBounds(lng1 = -86, lng2 = -82, lat1 = 8, lat2 = 11) %>%
addProviderTiles(providers$OpenStreetMap.Mapnik, group = "OpenStreetMap") %>%
addPolygons(fillColor = ~paleta_azul(positivos), stroke=T, fillOpacity = 1,
color="black", weight=0.2, opacity= 0.5,
group = "Cantones",
popup = paste("Provincia: ", sf_positivos_cantones_ultima_fecha$provincia, "
",
"Cantón: ", sf_positivos_cantones_ultima_fecha$canton, "
",
"Positivos: ", sf_positivos_cantones_ultima_fecha$positivos
)
) %>%
addLegend("bottomright", pal = paleta_azul, values = ~positivos,
title = "Casos positivos",
opacity = 1
) %>%
addLayersControl(
baseGroups = c("OpenStreetMap"),
overlayGroups = c("Cantones"),
options = layersControlOptions(collapsed = TRUE)
) %>%
addMiniMap(
toggleDisplay = TRUE,
position = "bottomleft",
tiles = providers$OpenStreetMap.Mapnik
)
# Despliegue del mapa
leaflet_cantones
```
### Gráfico de cantones con mayor cantidad de casos positivos
```{r}
st_drop_geometry(sf_positivos_cantones_ultima_fecha) %>%
mutate(canton = factor(canton, levels = canton)) %>%
top_n(n = 10, wt = positivos) %>%
plot_ly(x = ~ canton,
y = ~ positivos,
type = "bar",
text = ~ positivos,
textposition = 'auto',
marker = list(color = color_positivos)
) %>%
layout(yaxis = list(title = "Cantidad de casos positivos"),
xaxis = list(title = ""),
margin = list(l = 10,
r = 10,
b = 10,
t = 10,
pad = 2
)
)
```
Casos activos
=======================================================================
Row {data-height=1}
-----------------------------------------------------------------------
### **Última actualización: `r df_general_pais_ultima_fecha$FECHA`**
Row
-----------------------------------------------------------------------
### Casos Activos {.value-box}
```{r}
valueBox(value = paste(format(df_general_pais_ultima_fecha$activos, big.mark = ","), "(+",
df_general_pais_ultima_fecha$nue_acti,
")", "", sep = " "),
caption = "Total de Casos Activos",
icon = icono_activos,
color = color_activos
)
```
### Casos activos Mujeres {.value-box}
```{r}
valueBox(value = paste(format(df_general_pais_ultima_fecha$muj_acti, big.mark = ","), "(",
round(100 * df_general_pais_ultima_fecha$muj_acti / df_general_pais_ultima_fecha$positivos, 1),
"%)", sep = ""),
caption = "Total de Casos Activos Mujeres",
icon = icono_mujeres,
color = color_activos2
)
```
### Casos Activos Hombres {.value-box}
```{r}
valueBox(value = paste(format(df_general_pais_ultima_fecha$hom_acti, big.mark = ","), "(",
round(100 * df_general_pais_ultima_fecha$hom_acti / df_general_pais_ultima_fecha$positivos, 1),
"%)", sep = ""),
caption = "Total de Casos Activos Hombres",
icon = icono_hombres,
color = color_activos2
)
```
### Casos Activos Adultos {.value-box}
```{r}
valueBox(value = paste(format(df_general_pais_ultima_fecha$adul_acti, big.mark = ","), "(",
round(100 * df_general_pais_ultima_fecha$adul_acti / df_general_pais_ultima_fecha$positivos, 1),
"%)", sep = ""),
caption = "Total de Casos Activos Adultos",
icon = icono_adultostot,
color = color_activos2
)
```
### Casos Activos Adultos Mayores {.value-box}
```{r}
valueBox(value = paste(format(df_general_pais_ultima_fecha$am_acti, big.mark = ","), "(",
round(100 * df_general_pais_ultima_fecha$am_acti / df_general_pais_ultima_fecha$positivos, 1),
"%)", sep = ""),
caption = "Total de Casos Positivos Adultos Mayores",
icon = icono_adultosmayores,
color = color_activos2
)
```
### Casos Activos Niños {.value-box}
```{r}
valueBox(value = paste(format(df_general_pais_ultima_fecha$menor_acti, big.mark = ","), "(",
round(100 * df_general_pais_ultima_fecha$menor_acti / df_general_pais_ultima_fecha$positivos, 1),
"%)", sep = ""),
caption = "Total de Casos Positivos Niños",
icon = icono_menores,
color = color_activos2
)
```
Row {data-width=400}
-----------------------------------------------------------------------
### Mapa de casos Activos en cantones
```{r}
paleta_roja <- colorBin(palette = "Reds",
domain = sf_activos_cantones_ultima_fecha$activos,
bins = 10
)
leaflet_cantones <- leaflet(sf_activos_cantones_ultima_fecha) %>%
fitBounds(lng1 = -86, lng2 = -82, lat1 = 8, lat2 = 11) %>%
addProviderTiles(providers$OpenStreetMap.Mapnik, group = "OpenStreetMap") %>%
addPolygons(fillColor = ~paleta_roja(activos), stroke=T, fillOpacity = 1,
color="black", weight=0.2, opacity= 0.5,
group = "Cantones",
popup = paste("Provincia: ", sf_activos_cantones_ultima_fecha$provincia, "
",
"Cantón: ", sf_activos_cantones_ultima_fecha$canton, "
",
"Activos: ", sf_activos_cantones_ultima_fecha$activos
)
) %>%
addLegend("bottomright", pal = paleta_roja, values = ~activos,
title = "Casos activos",
opacity = 1
) %>%
addLayersControl(
baseGroups = c("OpenStreetMap"),
overlayGroups = c("Cantones"),
options = layersControlOptions(collapsed = TRUE)
) %>%
addMiniMap(
toggleDisplay = TRUE,
position = "bottomleft",
tiles = providers$OpenStreetMap.Mapnik
)
# Despliegue del mapa
leaflet_cantones
```
### Gráfico de cantones con mayor cantidad de casos Activos
```{r}
st_drop_geometry(sf_activos_cantones_ultima_fecha) %>%
mutate(canton = factor(canton, levels = canton)) %>%
top_n(n = 10, wt = activos) %>%
plot_ly(x = ~ canton,
y = ~ activos,
type = "bar",
text = ~ activos,
textposition = 'auto',
marker = list(color = color_activos)
) %>%
layout(yaxis = list(title = "Cantidad de casos activos"),
xaxis = list(title = ""),
margin = list(l = 10,
r = 10,
b = 10,
t = 10,
pad = 2
)
)
```
Casos Recuperados
=======================================================================
Row {data-height=1}
-----------------------------------------------------------------------
### **Última actualización: `r df_general_pais_ultima_fecha$FECHA`**
Row
-----------------------------------------------------------------------
### Casos Recuperados {.value-box}
```{r}
valueBox(value = paste(format(df_general_pais_ultima_fecha$RECUPERADOS, big.mark = ","), "(+",
df_general_pais_ultima_fecha$NUE_RECUP,
")", "", sep = " "),
caption = "Total de Casos Recuperados",
icon = icono_activos,
color = color_recuperados
)
```
### Casos Recuperados Mujeres {.value-box}
```{r}
valueBox(value = paste(format(df_general_pais_ultima_fecha$MUJ_RECUP, big.mark = ","), "(",
round(100 * df_general_pais_ultima_fecha$MUJ_RECUP / df_general_pais_ultima_fecha$positivos, 1),
"%)", sep = ""),
caption = "Total de Casos Recuperados Mujeres",
icon = icono_mujeres,
color = color_recuperados2
)
```
### Casos Recuperados Hombres {.value-box}
```{r}
valueBox(value = paste(format(df_general_pais_ultima_fecha$HOM_RECUP, big.mark = ","), "(",
round(100 * df_general_pais_ultima_fecha$HOM_RECUP / df_general_pais_ultima_fecha$positivos, 1),
"%)", sep = ""),
caption = "Total de Casos Recuperados Hombres",
icon = icono_hombres,
color = color_recuperados2
)
```
### Casos Recuperados Adultos {.value-box}
```{r}
valueBox(value = paste(format(df_general_pais_ultima_fecha$ADUL_RECUP, big.mark = ","), "(",
round(100 * df_general_pais_ultima_fecha$ADUL_RECUP / df_general_pais_ultima_fecha$positivos, 1),
"%)", sep = ""),
caption = "Total de Casos Recuperados Adultos",
icon = icono_adultostot,
color = color_recuperados2
)
```
### Casos Recuperados Adultos Mayores {.value-box}
```{r}
valueBox(value = paste(format(df_general_pais_ultima_fecha$AM_RECUP, big.mark = ","), "(",
round(100 * df_general_pais_ultima_fecha$AM_RECUP / df_general_pais_ultima_fecha$positivos, 1),
"%)", sep = ""),
caption = "Total de Casos Recuperados Adultos Mayores",
icon = icono_adultosmayores,
color = color_recuperados2
)
```
### Casos Recuperados Niños {.value-box}
```{r}
valueBox(value = paste(format(df_general_pais_ultima_fecha$MENOR_RECUP, big.mark = ","), "(",
round(100 * df_general_pais_ultima_fecha$MENOR_RECUP / df_general_pais_ultima_fecha$positivos, 1),
"%)", sep = ""),
caption = "Total de Casos Recuperados Niños",
icon = icono_menores,
color = color_recuperados2
)
```
Row {data-width=400}
-----------------------------------------------------------------------
### Mapa de casos recuperados en cantones
```{r}
paleta_verdes <- colorBin(palette = "Greens",
domain = sf_recuperados_cantones_ultima_fecha$recuperados,
bins = 10
)
leaflet_cantones <- leaflet(sf_recuperados_cantones_ultima_fecha) %>%
fitBounds(lng1 = -86, lng2 = -82, lat1 = 8, lat2 = 11) %>%
addProviderTiles(providers$OpenStreetMap.Mapnik, group = "OpenStreetMap") %>%
addPolygons(fillColor = ~paleta_verdes(recuperados), stroke=T, fillOpacity = 1,
color="black", weight=0.2, opacity= 0.5,
group = "Cantones",
popup = paste("Provincia: ", sf_recuperados_cantones_ultima_fecha$provincia, "
",
"Cantón: ", sf_recuperados_cantones_ultima_fecha$canton, "
",
"Recuperados: ", sf_recuperados_cantones_ultima_fecha$recuperados
)
) %>%
addLegend("bottomright", pal = paleta_verdes, values = ~recuperados,
title = "Casos Recuperados",
opacity = 1
) %>%
addLayersControl(
baseGroups = c("OpenStreetMap"),
overlayGroups = c("Cantones"),
options = layersControlOptions(collapsed = TRUE)
) %>%
addMiniMap(
toggleDisplay = TRUE,
position = "bottomleft",
tiles = providers$OpenStreetMap.Mapnik
)
# Despliegue del mapa
leaflet_cantones
```
### Gráfico de cantones con mayor cantidad de casos Recuperados
```{r}
st_drop_geometry(sf_recuperados_cantones_ultima_fecha) %>%
mutate(canton = factor(canton, levels = canton)) %>%
top_n(n = 10, wt = recuperados) %>%
plot_ly(x = ~ canton,
y = ~ recuperados,
type = "bar",
text = ~ recuperados,
textposition = 'auto',
marker = list(color = color_recuperados)
) %>%
layout(yaxis = list(title = "Cantidad de Casos Recuperados"),
xaxis = list(title = "Cantones"),
margin = list(l = 10,
r = 10,
b = 10,
t = 10,
pad = 2
)
)
```
Casos fallecidos
=======================================================================
Row {data-height=1}
-----------------------------------------------------------------------
### **Última actualización: `r df_general_pais_ultima_fecha$FECHA`**
Row
-----------------------------------------------------------------------
### Casos Fallecidos {.value-box}
```{r}
valueBox(value = paste(format(df_general_pais_ultima_fecha$fallecidos, big.mark = ","), "(+",
df_general_pais_ultima_fecha$nue_falleci,
")", "", sep = " "),
caption = "Total de Casos Fallecidos",
icon = icono_activos,
color = color_fallecidos
)
```
### Casos Fallecidos Mujeres {.value-box}
```{r}
valueBox(value = paste(format(df_general_pais_ultima_fecha$muj_fall, big.mark = ","), "(",
round(100 * df_general_pais_ultima_fecha$muj_fall / df_general_pais_ultima_fecha$positivos, 1),
"%)", sep = ""),
caption = "Total de Casos Fallecidos Mujeres",
icon = icono_mujeres,
color = color_fallecidos2
)
```
### Casos Fallecidos Hombres {.value-box}
```{r}
valueBox(value = paste(format(df_general_pais_ultima_fecha$hom_fall, big.mark = ","), "(",
round(100 * df_general_pais_ultima_fecha$hom_fall / df_general_pais_ultima_fecha$positivos, 1),
"%)", sep = ""),
caption = "Total de Casos Fallecidos Hombres",
icon = icono_hombres,
color = color_fallecidos2
)
```
### Casos Fallecidos Adultos {.value-box}
```{r}
valueBox(value = paste(format(df_general_pais_ultima_fecha$adul_fall, big.mark = ","), "(",
round(100 * df_general_pais_ultima_fecha$adul_fall / df_general_pais_ultima_fecha$positivos, 1),
"%)", sep = ""),
caption = "Total de Casos Fallecidos Adultos",
icon = icono_adultostot,
color = color_fallecidos2
)
```
### Casos Fallecidos Adultos Mayores {.value-box}
```{r}
valueBox(value = paste(format(df_general_pais_ultima_fecha$am_fall, big.mark = ","), "(",
round(100 * df_general_pais_ultima_fecha$am_fall / df_general_pais_ultima_fecha$positivos, 1),
"%)", sep = ""),
caption = "Total de Casos Fallecidos Adultos Mayores",
icon = icono_adultosmayores,
color = color_fallecidos2
)
```
### Casos Fallecidos Niños {.value-box}
```{r}
valueBox(value = paste(format(df_general_pais_ultima_fecha$menor_fall, big.mark = ","), "(",
round(100 * df_general_pais_ultima_fecha$menor_fall / df_general_pais_ultima_fecha$positivos, 1),
"%)", sep = ""),
caption = "Total de Casos Fallecidos Niños",
icon = icono_menores,
color = color_fallecidos2
)
```
Row {data-width=400}
-----------------------------------------------------------------------
### Mapa de casos fallecidos en cantones
```{r}
paleta_morada <- colorBin(palette = "Purples",
domain = sf_fallecidos_cantones_ultima_fecha$fallecidos,
bins = 10
)
leaflet_cantones <- leaflet(sf_fallecidos_cantones_ultima_fecha) %>%
fitBounds(lng1 = -86, lng2 = -82, lat1 = 8, lat2 = 11) %>%
addProviderTiles(providers$OpenStreetMap.Mapnik, group = "OpenStreetMap") %>%
addPolygons(fillColor = ~paleta_morada(fallecidos), stroke=T, fillOpacity = 1,
color="black", weight=0.2, opacity= 0.5,
group = "Cantones",
popup = paste("Provincia: ", sf_fallecidos_cantones_ultima_fecha$provincia, "
",
"Cantón: ", sf_fallecidos_cantones_ultima_fecha$canton, "
",
"Fallecidos: ", sf_fallecidos_cantones_ultima_fecha$fallecidos
)
) %>%
addLegend("bottomright", pal = paleta_morada, values = ~fallecidos,
title = "Casos Fallecidos",
opacity = 1
) %>%
addLayersControl(
baseGroups = c("OpenStreetMap"),
overlayGroups = c("Cantones"),
options = layersControlOptions(collapsed = TRUE)
) %>%
addMiniMap(
toggleDisplay = TRUE,
position = "bottomleft",
tiles = providers$OpenStreetMap.Mapnik
)
# Despliegue del mapa
leaflet_cantones
```
### Gráfico de cantones con mayor cantidad de casos fallecidos
```{r}
st_drop_geometry(sf_fallecidos_cantones_ultima_fecha) %>%
mutate(canton = factor(canton, levels = canton)) %>%
top_n(n = 10, wt = fallecidos) %>%
plot_ly(x = ~ canton,
y = ~ fallecidos,
type = "bar",
text = ~ fallecidos,
textposition = 'auto',
marker = list(color = color_fallecidos)
) %>%
layout(yaxis = list(title = "Cantidad de Casos Fallecidos"),
xaxis = list(title = "Cantones"),
margin = list(l = 10,
r = 10,
b = 10,
t = 10,
pad = 2
)
)
```